package com.mall.system.feign;

import com.mall.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 消息服务Feign客户端降级处理
 */
@Slf4j
@Component
public class MessageServiceFeignClientFallback implements MessageServiceFeignClient {
    
    /**
     * 记录短信发送日志
     * 
     * @param mobile 手机号码
     * @param content 短信内容
     * @param status 发送状态 0-失败 1-成功 2-待发送
     * @param errorMessage 错误信息
     * @return 日志ID
     */
    @Override
    public Result<Long> saveSmsLog(String mobile, String content, Integer status, String errorMessage) {
        log.error("记录短信发送日志失败，服务降级处理");
        return Result.failed("记录短信发送日志失败");
    }
    
    /**
     * 更新短信发送状态
     * 
     * @param logId 日志ID
     * @param status 发送状态 0-失败 1-成功 2-待发送
     * @param errorMessage 错误信息
     * @return 是否成功
     */
    @Override
    public Result<Boolean> updateSmsLogStatus(Long logId, Integer status, String errorMessage) {
        log.error("更新短信发送状态失败，服务降级处理");
        return Result.failed("更新短信发送状态失败");
    }
    
    /**
     * 记录邮件发送日志
     * 
     * @param toEmail 收件人邮箱
     * @param subject 邮件主题
     * @param content 邮件内容
     * @param status 发送状态 0-失败 1-成功 2-待发送
     * @param errorMessage 错误信息
     * @return 日志ID
     */
    @Override
    public Result<Long> saveEmailLog(String toEmail, String subject, String content, Integer status, String errorMessage) {
        log.error("记录邮件发送日志失败，服务降级处理");
        return Result.failed("记录邮件发送日志失败");
    }
    
    /**
     * 更新邮件发送状态
     * 
     * @param logId 日志ID
     * @param status 发送状态 0-失败 1-成功 2-待发送
     * @param errorMessage 错误信息
     * @return 是否成功
     */
    @Override
    public Result<Boolean> updateEmailLogStatus(Long logId, Integer status, String errorMessage) {
        log.error("更新邮件发送状态失败，服务降级处理");
        return Result.failed("更新邮件发送状态失败");
    }
}